home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 21
/
Cream of the Crop 21 (Terry Blount) (October 1996).iso
/
utility
/
bfind608.zip
/
BFIND.DOC
next >
Wrap
Text File
|
1996-07-19
|
14KB
|
326 lines
BFIND.DOC 1 Revised: 07-19-96
The BFIND.EXE program adds Boolean logic to DOS's FIND command. In most ways,
it's identical to the FIND command except:
* Adds AND, OR, NOT, and XOR options to searches (finding all lines with
"Apples" or "Bananas", for example).
* Allows you to specify the starting column of the desired string.
* Adds a pause (/P) option to have the output pause every 24 lines.
* Avoids need to include the search string in quotation marks so you can
use the program more easily in batch commands.
* The input file specification can include standard DOS wildcards or an
external file (@listfile) containing the files to be processed, e.g:
BFIND /I "SOUND" *.DOC > TEMP.X
* Allows you to skip the by-file heading information ("----- filename").
* Can avoid showing file name header if no hits in the file (/-EMPTY option).
* Handles DOS text files (lines end with CR/LF), Mac text files (lines end
with CR), or Unix text files (lines end with LF).
* Should be able to handle input files with line lengths of 5000 characters
or more.
* Allows you to remove non-text characters from the output or even specify
your own character-translation file for them.
The only FIND feature that BFIND does *not* support is the ability to specify
multilple single input files without using wildcards ("FIND ... BRUCE.TXT
BRUCE.DOC" works--"BFIND ... BRUCE.TXT BRUCE.DOC" does not). In addition, you
cannot do piping into BFIND (e.g. DIR | BFIND ...).
The DOS FIND command allows you to find lines in a text file which contain a
given string. You can also have the program tell you how many lines met the
search criteria without actually viewing them which is an ideal way to find out
how many times a given string appears in your file. You can even use FIND to
tell you how many total lines are in a given file just by requesting a string
that you know will never appear in your file like "#X$S$" and using the /C
(count) parameter.
BFIND adds to these capabilities. It gives you the power of AND, OR, NOT, and
XOR, allowing you to find any line, for example, that contains both "Apples" and
"Oranges" or to present any lines that contain either "Bananas" and "Pears". In
addition, you can do column-specific searching, finding only those lines, say,
that contain "PRINT" beginning in column 10.
BFIND allows you to specify wildcards for the input file. You can also put the
list of file names to process in a text file and tell BFIND to process the files
listed therein.
Specifying parameters:
Parameters for this program can be set in the following ways. The last setting
encountered always wins:
- Read from an *.INI file (see BRUCEINI.DOC file),
- Through the use of an environmental variable (SET BFIND=whatever), or
- From the command line (see "Syntax" below)
BFIND.DOC 2 Revised: 07-19-96
Syntax:
BFIND [ /V | /-V ] [ /C | /-C ] [ /N | /-N ] [ /I | /-I ] [ /P | /-P ]
[ /-HEADER ] [ /-EMPTY ] [ /FILTER | /FILTER=filename ]
[ /LINES { line1-line2 | line1 linect } ... ]
[ /MONO ] [ /Iinitfile | /INULL ] [ /? ] [ /?&H ]
{ search } { filespec | @listfile } [ >filename ]
where:
"/V" says to find those items that do NOT match the specification. Initially
defaults to "/-V".
"/-V" says to find those items that DO match the specification. This is
initially the default.
"/C" says to show the count of the items found (no individual lines). Initially
defaults to "/-C". One use for the "/C" parameter is to count the number of
lines in a file; search for all lines that do *not* (/V) contain a totally
improbable string and then tally them. E.g.
BFIND /V /C "&^&^&#" MYFILE.TXT
"/-C" says to skip counting the items. This is initially the default.
"/N" says to number the output lines. Initially defaults to "/-N".
"/-N" says to skip numbering the output lines. This is initially the default.
"/I" says to make it a case-insensitive search. So a search for "Apple" will
find "APPLE", "apple", ApPle", etc.
"/-I" is the opposite of /I and is typically the default. A search for "Apple"
will not find "APPLE".
"/P" says to have the display pause every 24 lines. Initially defaults to
"/-P".
"/-P" says to not bother pausing the output display. This is initially the
default.
"/-HEADER" says to skip the normal -----infile output line that appears before
the results of the output.
"/HEADER" says to include the headers. This is initially the default. The
header lines look like this:
--------- C:\VBDOS\BFIND.BAS
"/EMPTY" says that the -----infile header information is to be shown even if the
file doesn't have any hits in it. This is initially the default.
"/-EMPTY" says to only show the -----infile header information if the file has
hits. Initially defaults to "/EMPTY".
BFIND.DOC 3 Revised: 07-19-96
"/FILTER" says to remove all nonprintable characters from the output. Initially
defaults to "/-FILTER".
"/-FILTER" says to not bother removing the nonprintable characters from the
output. This is initially the default.
"/FILTER=filename" specifies that a filter is to be applied and all non-same
character replacements are in the file "filename". This feature is of very
limited usefulness in the BFIND program unless you're reading native word
processing files. If this excites you for some reason, get the ZIP READymm.ZIP
and read the documentation for the READY program. The feature works identically
in both programs.
"/LINES line1-line2" says to restrict the search to lines between line numbers
line1 and line2 inclusive. You can have multiple line requests in any order
such as "/LINES 1-10 90-100 30-50". The routine skips all lines after the
largest line number is encountered. Defaults to "/LINES 1-9999999".
"/LINES line1 linect" says to restrict the search to lines beginning with line1
and continuing for a total of linect lines. So "/LINES 10 20" is actually the
same as "/LINES 10-29".
"/MONO" (or "/-COLOR") does not try to override screen colors. Initially
defaults to "/COLOR".
"/COLOR" (or "/-MONO") allows screen colors to be overridden. This is initially
the default.
"/Iinitfile" says to read an initialization file with the file name "initfile".
The file specification *must* contain a period. Initfiles are described in the
BRUCEINI.DOC file. Initially defaults to "/IBFIND.INI".
"/INULL" says to skip loading the initialization file.
"/?" or "/HELP" or "HELP" shows you the syntax for the command.
"/?&H" gives you a hexadecimal and decimal conversion table.
"search" is described below.
"filespec" tells the routine which file or files are to be processed. The
specification can include path and wildcards if desired. One thing I find
useful with wildcards is that is allows me to create an output that concatenates
all of the input files together with the typical headers (/HEADER) that separate
each portion. This requires searching for all lines in a file so you need to
use the /V option and look for an improbable string. For example, to
concatenate all *.TXT files together as a new file called TEMP.NEW and have the
little header between each, say this:
BFIND /V "&#$#" *.TXT > TEMP.NEW
"@listfile" allows you to have a variety of file specifications saved in a text
file named "listfile". Each line in the file should consist of one file
specification, each of which can include a path and wildcards if desired. Blank
lines and lines beginning with semi-colons, colons, or quotes are ignored. An
example using this is provided at the end of this documentation.
BFIND.DOC 4 Revised: 07-19-96